package com.learn.hibernatevalidator.chapter09.messageinterpolator;

import jakarta.validation.MessageInterpolator;

import java.util.Locale;

/**
 * @author: liyf
 * @create: 2025-01-19 21:35
 **/
public class MyMessageInterpolator implements MessageInterpolator {

    /**
     * 参数:
     * messageTemplate: 一个字符串模板，通常包含一些需要插值的占位符。
     * context: 该参数包含有关上下文的信息，如验证对象、属性名等，允许您在插值时引用它们。
     * 执行情况:
     * 这个方法在不需要本地化时被调用。也就是说，当验证框架在处理消息时不涉及特定的地区或语言环境时，会使用此版本的 interpolate 方法。
     *
     * @param messageTemplate the message to interpolate
     * @param context contextual information related to the interpolation
     *
     * @return
     */
    @Override
    public String interpolate(String messageTemplate, Context context) {
        return "";
    }

    /**
     * 参数:
     * messageTemplate: 同样是一个字符串模板。
     * context: 包含验证的上下文信息，与第一个方法相同。
     * locale: 这是一个 Locale 对象，表示特定的语言和地区。这个参数允许您根据不同的地区和语言来插值消息模板。
     * 执行情况:
     * 这个方法在需要考虑本地化时被调用。例如，当您希望根据用户的语言和地区自定义验证消息时，验证框架会使用第二个 interpolate 方法
     *
     * @param messageTemplate the message to interpolate
     * @param context contextual information related to the interpolation
     * @param locale the locale targeted for the message
     *
     * @return
     */
    @Override
    public String interpolate(String messageTemplate, Context context, Locale locale) {
        return "";
    }
}
